[INFO] cloning repository https://github.com/epappas/rustclaw
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/epappas/rustclaw" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fepappas%2Frustclaw", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fepappas%2Frustclaw'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7c922e12a37ceeb1b38db88d231ae09249595206
[INFO] fixing epappas/rustclaw against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fepappas%2Frustclaw" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/epappas/rustclaw
[INFO] finished tweaking git repo https://github.com/epappas/rustclaw
[INFO] tweaked toml for git repo https://github.com/epappas/rustclaw written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/epappas/rustclaw on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/epappas/rustclaw already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02
[INFO] running `Command { std: "docker" "start" "00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating crates/rustclaw-core/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/rustclaw-cli/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking phf_shared v0.11.3
[INFO] [stderr]    Compiling zmij v1.0.20
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking dtoa v1.0.11
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking dtoa-short v0.3.5
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.1
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling selectors v0.25.0
[INFO] [stderr]    Compiling chrono-tz-build v0.3.0
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling markup5ever v0.12.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling html5ever v0.27.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking string_cache v0.8.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking xml5ever v0.18.1
[INFO] [stderr]     Checking getopts v0.2.24
[INFO] [stderr]     Checking cssparser v0.31.2
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling chrono-tz v0.9.0
[INFO] [stderr]     Checking rc-box v1.3.0
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking servo_arc v0.3.0
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]    Compiling pulldown-cmark v0.10.3
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking takecell v0.1.1
[INFO] [stderr]     Checking never v0.1.0
[INFO] [stderr]    Compiling teloxide-macros v0.7.1
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking yaml-rust2 v0.8.1
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking rust-ini v0.20.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]    Compiling aquamarine v0.1.12
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking markup5ever_rcdom v0.3.0
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking dptree v0.3.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking pulldown-cmark-escape v0.10.1
[INFO] [stderr]     Checking utf8-width v0.1.8
[INFO] [stderr]     Checking ego-tree v0.6.3
[INFO] [stderr]     Checking html-escape v0.2.13
[INFO] [stderr]     Checking which v6.0.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking scraper v0.19.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking config v0.14.1
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking html2md v0.2.15
[INFO] [stderr]     Checking shellexpand v3.1.1
[INFO] [stderr]     Checking cron v0.12.1
[INFO] [stderr]     Checking jsonpath_lib v0.3.0
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]     Checking nibble_vec v0.1.0
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking radix_trie v0.2.1
[INFO] [stderr]     Checking clap_builder v4.5.57
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking fd-lock v4.0.4
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking teloxide-core v0.9.1
[INFO] [stderr]     Checking rustyline v14.0.0
[INFO] [stderr]     Checking clap v4.5.57
[INFO] [stderr]     Checking teloxide v0.12.2
[INFO] [stderr]     Checking rustclaw-core v0.1.0 (/opt/rustwide/workdir/crates/rustclaw-core)
[INFO] [stderr]    Migrating crates/rustclaw-core/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed crates/rustclaw-core/src/channels/telegram.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/loop_engine.rs:253:42
[INFO] [stdout]      |
[INFO] [stdout]  253 |             if let Ok((client, specs)) = connect_and_list(&server).await {
[INFO] [stdout]      |                        ------            ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                        |                 |                         |
[INFO] [stdout]      |                        |                 |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                        |                 |                         up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        |                 |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |                 |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                        |                 up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        |                 `__awaitee` calls a custom destructor
[INFO] [stdout]      |                        |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        `client` calls a custom destructor
[INFO] [stdout]      |                        `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  262 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/process/mod.rs:1123:1
[INFO] [stdout]      |
[INFO] [stdout] 1123 | impl<T: Kill> Drop for ChildDropGuard<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/process/mod.rs:1123:1
[INFO] [stdout]      |
[INFO] [stdout] 1123 | impl<T: Kill> Drop for ChildDropGuard<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/process/mod.rs:1123:1
[INFO] [stdout]      |
[INFO] [stdout] 1123 | impl<T: Kill> Drop for ChildDropGuard<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/loop_engine.rs:319:59
[INFO] [stdout]      |
[INFO] [stdout]  316 |             match timeout(Duration::from_secs(1), self.bus.consume_inbound()).await {
[INFO] [stdout]      |                   -----------------------------------------------------------------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  319 |                         self.process_system_message(&msg).await
[INFO] [stdout]      |                         ----------------------------------^^^^^
[INFO] [stdout]      |                         |                                 |
[INFO] [stdout]      |                         |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                         |                                 up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  320 |                     } else {
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  321 |                         self.process_message(&msg).await
[INFO] [stdout]      |                         --------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  324 |                         self.bus.publish_outbound(out).await;
[INFO] [stdout]      |                         ------------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/loop_engine.rs:321:52
[INFO] [stdout]      |
[INFO] [stdout]  316 |             match timeout(Duration::from_secs(1), self.bus.consume_inbound()).await {
[INFO] [stdout]      |                   -----------------------------------------------------------------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  319 |                         self.process_system_message(&msg).await
[INFO] [stdout]      |                         ---------------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  320 |                     } else {
[INFO] [stdout]  321 |                         self.process_message(&msg).await
[INFO] [stdout]      |                         ---------------------------^^^^^
[INFO] [stdout]      |                         |                          |
[INFO] [stdout]      |                         |                          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                         |                          up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  322 |                     };
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  323 |                     if let Some(out) = response {
[INFO] [stdout]  324 |                         self.bus.publish_outbound(out).await;
[INFO] [stdout]      |                         ------------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> crates/rustclaw-core/src/agent/tools/registry.rs:45:30
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let tool = match self.tools.get(name) {
[INFO] [stdout]    |             ----
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `tool` calls a custom destructor
[INFO] [stdout]    |             `tool` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 45 |         tool.execute(params).await
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 46 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `tool` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:39:19
[INFO] [stdout]     |
[INFO] [stdout]  38 |         let mut rx = self.inbound_rx.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `rx` calls a custom destructor
[INFO] [stdout]     |             `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  39 |         rx.recv().await
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  40 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:48:19
[INFO] [stdout]     |
[INFO] [stdout]  47 |         let mut rx = self.outbound_rx.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `rx` calls a custom destructor
[INFO] [stdout]     |             `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  48 |         rx.recv().await
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  49 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:67:27
[INFO] [stdout]     |
[INFO] [stdout]  66 |                 let mut rx = self.outbound_rx.lock().await;
[INFO] [stdout]     |                     ------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `rx` calls a custom destructor
[INFO] [stdout]     |                     `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  67 |                 rx.recv().await
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  68 |             };
[INFO] [stdout]     |              - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:73:26
[INFO] [stdout]     |
[INFO] [stdout]  62 |               if !*self.running.lock().await {
[INFO] [stdout]     |                    -------------------------
[INFO] [stdout]     |                    |                   |
[INFO] [stdout]     |                    |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 |                   let mut rx = self.outbound_rx.lock().await;
[INFO] [stdout]     |                       ------   -----------------------------
[INFO] [stdout]     |                       |        |                       |
[INFO] [stdout]     |                       |        |                       this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                       |        |                       `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |        `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `rx` calls a custom destructor
[INFO] [stdout]     |                       `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  67 |                   rx.recv().await
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                   `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  73 |               let subs = { self.subscribers.lock().await.clone() };
[INFO] [stdout]     |                   ----     ^^^^^^^^^^^^^^^^^^^^^^^^-----          - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |                   |        |                       |
[INFO] [stdout]     |                   |        |                       this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                   |        |                       up until Edition 2021 `#10` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |        |                       this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                   |        |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                   |        up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   |        `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `subs` calls a custom destructor
[INFO] [stdout]     |                   `subs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  78 | /                     tokio::spawn(async move {
[INFO] [stdout]  79 | |                         let _ = handle.await;
[INFO] [stdout]  80 | |                     });
[INFO] [stdout]     | |                      -
[INFO] [stdout]     | |                      |
[INFO] [stdout]     | |______________________this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                        `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subs` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:112:23
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 match self.http.get(url).send().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                         |
[INFO] [stdout]     |                       |                         this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                       |                         up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 113 |                     Ok(resp) => match resp.bytes().await {
[INFO] [stdout]     |                                       ------------------
[INFO] [stdout]     |                                       |            |
[INFO] [stdout]     |                                       |            this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                       |            `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 114 |                         Ok(bytes) => {
[INFO] [stdout]     |                            -----
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            `bytes` calls a custom destructor
[INFO] [stdout]     |                            `bytes` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 121 |                         Err(e) => {
[INFO] [stdout]     |                             -
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `e` calls a custom destructor
[INFO] [stdout]     |                             `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 126 |                     Err(e) => {
[INFO] [stdout]     |                         -
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                         `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 131 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `bytes` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:159:32
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let handle = tokio::spawn(async move {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `handle` calls a custom destructor
[INFO] [stdout]     |             `handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 159 |         if let Ok(mut guard) = self.typing_tasks.lock() {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 162 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:174:31
[INFO] [stdout]     |
[INFO] [stdout] 174 |         while let Some(msg) = ws_stream.next().await {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                               |                |
[INFO] [stdout]     |                               |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                               up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 181 |                 let mut guard = seq.lock().await;
[INFO] [stdout]     |                     ---------   ----------------
[INFO] [stdout]     |                     |           |          |
[INFO] [stdout]     |                     |           |          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |           |          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                     |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `guard` calls a custom destructor
[INFO] [stdout]     |                     `guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 |                     self.identify(&ws_sink).await?;
[INFO] [stdout]     |                     -----------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 197 |                         self.handle_message_create(payload).await;
[INFO] [stdout]     |                         -----------------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                         `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 210 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/heartbeat/service.rs:97:38
[INFO] [stdout]      |
[INFO] [stdout]   97 |                 if let Ok(running) = self.running.lock() {
[INFO] [stdout]      |                           -------    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |          |
[INFO] [stdout]      |                           |          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           |          up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                           `running` calls a custom destructor
[INFO] [stdout]      |                           `running` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  102 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  103 |             tokio::time::sleep(std::time::Duration::from_secs(self.interval_s)).await;
[INFO] [stdout]      |             -------------------------------------------------------------------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `__awaitee` calls a custom destructor
[INFO] [stdout]      |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  104 |             if let Ok(running) = self.running.lock() {
[INFO] [stdout]      |                       -------    -------------------
[INFO] [stdout]      |                       |          |
[INFO] [stdout]      |                       |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  109 |             if let Err(e) = self.tick().await {
[INFO] [stdout]      |                             -----------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `running` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/heartbeat/service.rs:146:15
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let cb = self.on_heartbeat.lock().unwrap().clone()?;
[INFO] [stdout]     |             --
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `cb` calls a custom destructor
[INFO] [stdout]     |             `cb` will be dropped later as of Edition 2024
[INFO] [stdout] 146 |         match cb(HEARTBEAT_PROMPT.to_string()).await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |               |                                |
[INFO] [stdout]     |               |                                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               |                                up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 150 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `cb` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/heartbeat/service.rs:146:48
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let cb = self.on_heartbeat.lock().unwrap().clone()?;
[INFO] [stdout]     |             --
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `cb` calls a custom destructor
[INFO] [stdout]     |             `cb` will be dropped later as of Edition 2024
[INFO] [stdout] 146 |         match cb(HEARTBEAT_PROMPT.to_string()).await {
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 150 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `cb` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> crates/rustclaw-core/src/agent/skills_exec.rs:67:53
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 self.tools.execute(tool_name, args).await
[INFO] [stdout]    |                 ------------------------------------^^^^^
[INFO] [stdout]    |                 |                                   |
[INFO] [stdout]    |                 |                                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                 |                                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                 `__awaitee` calls a custom destructor
[INFO] [stdout]    |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 68 |             } else if let Some(skill_name) = &step.skill {
[INFO] [stdout]    |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 69 |                 self.execute_with_depth(skill_name, args, depth + 1).await?
[INFO] [stdout]    |                 ----------------------------------------------------------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/tools/web.rs:152:30
[INFO] [stdout]      |
[INFO] [stdout]  152 |             if let Ok(sel) = Selector::parse(selector) {
[INFO] [stdout]      |                       ---    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |      |
[INFO] [stdout]      |                       |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                       `sel` calls a custom destructor
[INFO] [stdout]      |                       `sel` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  160 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/cssparser-0.31.2/src/cow_rc_str.rs:102:1
[INFO] [stdout]      |
[INFO] [stdout]  102 | impl<'a> Drop for CowRcStr<'a> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
[INFO] [stdout]      |
[INFO] [stdout] 2147 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sel` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
[INFO] [stdout]      |
[INFO] [stdout] 2147 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:68:32
[INFO] [stdout]     |
[INFO] [stdout]  57 |         let handle = tokio::spawn(async move {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `handle` calls a custom destructor
[INFO] [stdout]     |             `handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  68 |         if let Ok(mut guard) = self.heartbeat_task.lock() {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  74 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:232:82
[INFO] [stdout]     |
[INFO] [stdout] 230 |                     let (sink, mut stream) = ws.split();
[INFO] [stdout]     |                                ----------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `stream` calls a custom destructor
[INFO] [stdout]     |                                `stream` will be dropped later as of Edition 2024
[INFO] [stdout] 231 |                     let sink = Arc::new(Mutex::new(sink));
[INFO] [stdout]     |                         ----
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `sink` calls a custom destructor
[INFO] [stdout]     |                         `sink` will be dropped later as of Edition 2024
[INFO] [stdout] 232 |                     if let Err(e) = self.gateway_loop(&mut stream, sink.clone()).await {
[INFO] [stdout]     |                                                                                  ^^^^^
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 235 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `stream` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sink` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/channels/discord.rs:279:40
[INFO] [stdout]      |
[INFO] [stdout]  268 |               let resp = self
[INFO] [stdout]      |  _________________----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `resp` calls a custom destructor
[INFO] [stdout]      | |                 `resp` will be dropped later as of Edition 2024
[INFO] [stdout]  269 | |                 .http
[INFO] [stdout]  270 | |                 .post(&url)
[INFO] [stdout]  271 | |                 .header("Authorization", format!("Bot {}", self.config.token))
[INFO] [stdout]  272 | |                 .json(&payload)
[INFO] [stdout]  273 | |                 .send()
[INFO] [stdout]  274 | |                 .await;
[INFO] [stdout]      | |                  -----
[INFO] [stdout]      | |                  |   |
[INFO] [stdout]      | |__________________|___`__awaitee` calls a custom destructor
[INFO] [stdout]      |                    |   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  275 |               match resp {
[INFO] [stdout]  276 |                   Ok(r) => {
[INFO] [stdout]      |                      -
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `r` calls a custom destructor
[INFO] [stdout]      |                      `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  279 |                           if let Ok(v) = r.json::<Value>().await {
[INFO] [stdout]      |                                          ^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                          |                 |
[INFO] [stdout]      |                                          |                 this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                                          |                 up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                          |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                          |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                          this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                                          up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  280 |                               let retry = v.get("retry_after").and_then(|v| v.as_f64()).unwrap_or(1.0);
[INFO] [stdout]  281 |                               tokio::time::sleep(Duration::from_millis((retry * 1000.0) as u64)).await;
[INFO] [stdout]      |                               ------------------------------------------------------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                               `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  284 |                       }
[INFO] [stdout]      |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  289 |                               tokio::time::sleep(Duration::from_secs(1)).await;
[INFO] [stdout]      |                               ------------------------------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                               `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  295 |                   Err(e) => {
[INFO] [stdout]      |                       -
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `e` calls a custom destructor
[INFO] [stdout]      |                       `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  300 |                       tokio::time::sleep(Duration::from_secs(1)).await;
[INFO] [stdout]      |                       ------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `resp` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `r` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/whatsapp.rs:92:43
[INFO] [stdout]     |
[INFO] [stdout]  92 |                     while let Some(msg) = read.next().await {
[INFO] [stdout]     |                                    ---    ^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |      |           |
[INFO] [stdout]     |                                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `msg` calls a custom destructor
[INFO] [stdout]     |                                    `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  96 |                                     self.handle_bridge_message(text).await;
[INFO] [stdout]     |                                     --------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  99 |                             Err(e) => {
[INFO] [stdout]     |                                 -
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `e` calls a custom destructor
[INFO] [stdout]     |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 104 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/channels/whatsapp.rs:92:43
[INFO] [stdout]      |
[INFO] [stdout]   86 |             match connect_async(&bridge_url).await {
[INFO] [stdout]      |                   --------------------------------
[INFO] [stdout]      |                   |                          |
[INFO] [stdout]      |                   |                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   |                          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]   87 |                 Ok((ws, _)) => {
[INFO] [stdout]   88 |                     let (write, mut read) = ws.split();
[INFO] [stdout]      |                                 --------    ----------
[INFO] [stdout]      |                                 |           |
[INFO] [stdout]      |                                 |           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                 |           `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                 `read` calls a custom destructor
[INFO] [stdout]      |                                 `read` will be dropped later as of Edition 2024
[INFO] [stdout]   89 |                     let mut guard = self.ws_sender.lock().await;
[INFO] [stdout]      |                         ---------   ---------------------------
[INFO] [stdout]      |                         |           |                     |
[INFO] [stdout]      |                         |           |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                         |           |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                         |           `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         `guard` calls a custom destructor
[INFO] [stdout]      |                         `guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   92 |                     while let Some(msg) = read.next().await {
[INFO] [stdout]      |                                    ---    ^^^^^^^^^^^^-----
[INFO] [stdout]      |                                    |      |           |
[INFO] [stdout]      |                                    |      |           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                    |      |           `#6` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    |      this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      |                                    |      up until Edition 2021 `#10` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                    `msg` calls a custom destructor
[INFO] [stdout]      |                                    `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   96 |                                     self.handle_bridge_message(text).await;
[INFO] [stdout]      |                                     --------------------------------------
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                                     `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   99 |                             Err(e) => {
[INFO] [stdout]      |                                 -
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 `e` calls a custom destructor
[INFO] [stdout]      |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  104 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  105 |                 }
[INFO] [stdout]  106 |                 Err(e) => {
[INFO] [stdout]      |                     -
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  110 |             tokio::time::sleep(Duration::from_secs(5)).await;
[INFO] [stdout]      |             ------------------------------------------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rustls-0.23.36/src/crypto/tls13.rs:248:1
[INFO] [stdout]      |
[INFO] [stdout]  248 | impl Drop for OkmBlock {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rustls-0.23.36/src/crypto/tls13.rs:248:1
[INFO] [stdout]      |
[INFO] [stdout]  248 | impl Drop for OkmBlock {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `read` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]      |
[INFO] [stdout]  200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]      |
[INFO] [stdout]  200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `guard` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/cron/service.rs:162:31
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let handle = tokio::spawn(async move {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `handle` calls a custom destructor
[INFO] [stdout]     |             `handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 162 |         if let Ok(mut task) = self.timer_task.lock() {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 168 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/providers/openai_provider.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 |               if let (Ok(name), Ok(value)) = (
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout] 144 | |                 reqwest::header::HeaderName::from_bytes(k.as_bytes()),
[INFO] [stdout] 145 | |                 HeaderValue::from_str(v),
[INFO] [stdout] 146 | |             ) {
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 147 |                   headers.insert(name, value);
[INFO] [stdout]     |                   ---------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 148 |               }
[INFO] [stdout] 149 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/providers/anthropic_provider.rs:47:44
[INFO] [stdout]     |
[INFO] [stdout]  47 |               if let (Ok(name), Ok(value)) = (
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout]  48 | |                 reqwest::header::HeaderName::from_bytes(k.as_bytes()),
[INFO] [stdout]  49 | |                 HeaderValue::from_str(v),
[INFO] [stdout]  50 | |             ) {
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  51 |                   headers.insert(name, value);
[INFO] [stdout]     |                   ---------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  52 |               }
[INFO] [stdout]  53 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rustclaw-cli v0.1.0 (/opt/rustwide/workdir/crates/rustclaw-cli)
[INFO] [stderr]    Migrating crates/rustclaw-core/tests/cron.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/loop_engine.rs:253:42
[INFO] [stdout]      |
[INFO] [stdout]  253 |             if let Ok((client, specs)) = connect_and_list(&server).await {
[INFO] [stdout]      |                        ------            ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                        |                 |                         |
[INFO] [stdout]      |                        |                 |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                        |                 |                         up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        |                 |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                        |                 |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                        |                 up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                        |                 `__awaitee` calls a custom destructor
[INFO] [stdout]      |                        |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]      |                        `client` calls a custom destructor
[INFO] [stdout]      |                        `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  262 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/process/mod.rs:1123:1
[INFO] [stdout]      |
[INFO] [stdout] 1123 | impl<T: Kill> Drop for ChildDropGuard<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/process/mod.rs:1123:1
[INFO] [stdout]      |
[INFO] [stdout] 1123 | impl<T: Kill> Drop for ChildDropGuard<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/process/mod.rs:1123:1
[INFO] [stdout]      |
[INFO] [stdout] 1123 | impl<T: Kill> Drop for ChildDropGuard<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/loop_engine.rs:319:59
[INFO] [stdout]      |
[INFO] [stdout]  316 |             match timeout(Duration::from_secs(1), self.bus.consume_inbound()).await {
[INFO] [stdout]      |                   -----------------------------------------------------------------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  319 |                         self.process_system_message(&msg).await
[INFO] [stdout]      |                         ----------------------------------^^^^^
[INFO] [stdout]      |                         |                                 |
[INFO] [stdout]      |                         |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                         |                                 up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  320 |                     } else {
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  321 |                         self.process_message(&msg).await
[INFO] [stdout]      |                         --------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  324 |                         self.bus.publish_outbound(out).await;
[INFO] [stdout]      |                         ------------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/loop_engine.rs:321:52
[INFO] [stdout]      |
[INFO] [stdout]  316 |             match timeout(Duration::from_secs(1), self.bus.consume_inbound()).await {
[INFO] [stdout]      |                   -----------------------------------------------------------------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  319 |                         self.process_system_message(&msg).await
[INFO] [stdout]      |                         ---------------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  320 |                     } else {
[INFO] [stdout]  321 |                         self.process_message(&msg).await
[INFO] [stdout]      |                         ---------------------------^^^^^
[INFO] [stdout]      |                         |                          |
[INFO] [stdout]      |                         |                          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                         |                          up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  322 |                     };
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  323 |                     if let Some(out) = response {
[INFO] [stdout]  324 |                         self.bus.publish_outbound(out).await;
[INFO] [stdout]      |                         ------------------------------------
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> crates/rustclaw-core/src/agent/tools/registry.rs:45:30
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let tool = match self.tools.get(name) {
[INFO] [stdout]    |             ----
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `tool` calls a custom destructor
[INFO] [stdout]    |             `tool` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 45 |         tool.execute(params).await
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 46 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `tool` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:39:19
[INFO] [stdout]     |
[INFO] [stdout]  38 |         let mut rx = self.inbound_rx.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `rx` calls a custom destructor
[INFO] [stdout]     |             `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  39 |         rx.recv().await
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  40 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:48:19
[INFO] [stdout]     |
[INFO] [stdout]  47 |         let mut rx = self.outbound_rx.lock().await;
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `rx` calls a custom destructor
[INFO] [stdout]     |             `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  48 |         rx.recv().await
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  49 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:67:27
[INFO] [stdout]     |
[INFO] [stdout]  66 |                 let mut rx = self.outbound_rx.lock().await;
[INFO] [stdout]     |                     ------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     `rx` calls a custom destructor
[INFO] [stdout]     |                     `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  67 |                 rx.recv().await
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  68 |             };
[INFO] [stdout]     |              - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/bus/queue.rs:73:26
[INFO] [stdout]     |
[INFO] [stdout]  62 |               if !*self.running.lock().await {
[INFO] [stdout]     |                    -------------------------
[INFO] [stdout]     |                    |                   |
[INFO] [stdout]     |                    |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    `__awaitee` calls a custom destructor
[INFO] [stdout]     |                    `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  66 |                   let mut rx = self.outbound_rx.lock().await;
[INFO] [stdout]     |                       ------   -----------------------------
[INFO] [stdout]     |                       |        |                       |
[INFO] [stdout]     |                       |        |                       this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                       |        |                       `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       |        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |        `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       `rx` calls a custom destructor
[INFO] [stdout]     |                       `rx` will be dropped later as of Edition 2024
[INFO] [stdout]  67 |                   rx.recv().await
[INFO] [stdout]     |                   ---------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                   `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  73 |               let subs = { self.subscribers.lock().await.clone() };
[INFO] [stdout]     |                   ----     ^^^^^^^^^^^^^^^^^^^^^^^^-----          - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |                   |        |                       |
[INFO] [stdout]     |                   |        |                       this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]     |                   |        |                       up until Edition 2021 `#10` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |        |                       this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                   |        |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   |        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                   |        up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                   |        this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                   |        `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                   `subs` calls a custom destructor
[INFO] [stdout]     |                   `subs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  78 | /                     tokio::spawn(async move {
[INFO] [stdout]  79 | |                         let _ = handle.await;
[INFO] [stdout]  80 | |                     });
[INFO] [stdout]     | |                      -
[INFO] [stdout]     | |                      |
[INFO] [stdout]     | |______________________this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                        `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `rx` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `subs` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:112:23
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 match self.http.get(url).send().await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                         |
[INFO] [stdout]     |                       |                         this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                       |                         up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                       up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 113 |                     Ok(resp) => match resp.bytes().await {
[INFO] [stdout]     |                                       ------------------
[INFO] [stdout]     |                                       |            |
[INFO] [stdout]     |                                       |            this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                       |            `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                       `#3` will be dropped later as of Edition 2024
[INFO] [stdout] 114 |                         Ok(bytes) => {
[INFO] [stdout]     |                            -----
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            `bytes` calls a custom destructor
[INFO] [stdout]     |                            `bytes` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 121 |                         Err(e) => {
[INFO] [stdout]     |                             -
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             `e` calls a custom destructor
[INFO] [stdout]     |                             `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 126 |                     Err(e) => {
[INFO] [stdout]     |                         -
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                         `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 131 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `bytes` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:159:32
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let handle = tokio::spawn(async move {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `handle` calls a custom destructor
[INFO] [stdout]     |             `handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 159 |         if let Ok(mut guard) = self.typing_tasks.lock() {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 162 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:174:31
[INFO] [stdout]     |
[INFO] [stdout] 174 |         while let Some(msg) = ws_stream.next().await {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                               |                |
[INFO] [stdout]     |                               |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                               up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 181 |                 let mut guard = seq.lock().await;
[INFO] [stdout]     |                     ---------   ----------------
[INFO] [stdout]     |                     |           |          |
[INFO] [stdout]     |                     |           |          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                     |           |          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     |           `__awaitee` calls a custom destructor
[INFO] [stdout]     |                     |           `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                     `guard` calls a custom destructor
[INFO] [stdout]     |                     `guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 191 |                     self.identify(&ws_sink).await?;
[INFO] [stdout]     |                     -----------------------------
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                     `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 197 |                         self.handle_message_create(payload).await;
[INFO] [stdout]     |                         -----------------------------------------
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                         `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 210 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `guard` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]     |
[INFO] [stdout] 964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/heartbeat/service.rs:97:38
[INFO] [stdout]      |
[INFO] [stdout]   97 |                 if let Ok(running) = self.running.lock() {
[INFO] [stdout]      |                           -------    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |          |
[INFO] [stdout]      |                           |          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                           |          up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                           `running` calls a custom destructor
[INFO] [stdout]      |                           `running` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  102 |             }
[INFO] [stdout]      |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  103 |             tokio::time::sleep(std::time::Duration::from_secs(self.interval_s)).await;
[INFO] [stdout]      |             -------------------------------------------------------------------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             `__awaitee` calls a custom destructor
[INFO] [stdout]      |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  104 |             if let Ok(running) = self.running.lock() {
[INFO] [stdout]      |                       -------    -------------------
[INFO] [stdout]      |                       |          |
[INFO] [stdout]      |                       |          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       |          `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  109 |             if let Err(e) = self.tick().await {
[INFO] [stdout]      |                             -----------------
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                             `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `running` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/heartbeat/service.rs:146:15
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let cb = self.on_heartbeat.lock().unwrap().clone()?;
[INFO] [stdout]     |             --
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `cb` calls a custom destructor
[INFO] [stdout]     |             `cb` will be dropped later as of Edition 2024
[INFO] [stdout] 146 |         match cb(HEARTBEAT_PROMPT.to_string()).await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |               |                                |
[INFO] [stdout]     |               |                                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               |                                up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 150 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `cb` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/heartbeat/service.rs:146:48
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let cb = self.on_heartbeat.lock().unwrap().clone()?;
[INFO] [stdout]     |             --
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `cb` calls a custom destructor
[INFO] [stdout]     |             `cb` will be dropped later as of Edition 2024
[INFO] [stdout] 146 |         match cb(HEARTBEAT_PROMPT.to_string()).await {
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 150 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `cb` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> crates/rustclaw-core/src/agent/skills_exec.rs:67:53
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 self.tools.execute(tool_name, args).await
[INFO] [stdout]    |                 ------------------------------------^^^^^
[INFO] [stdout]    |                 |                                   |
[INFO] [stdout]    |                 |                                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                 |                                   up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                 `__awaitee` calls a custom destructor
[INFO] [stdout]    |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 68 |             } else if let Some(skill_name) = &step.skill {
[INFO] [stdout]    |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] 69 |                 self.execute_with_depth(skill_name, args, depth + 1).await?
[INFO] [stdout]    |                 ----------------------------------------------------------
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/agent/tools/web.rs:152:30
[INFO] [stdout]      |
[INFO] [stdout]  152 |             if let Ok(sel) = Selector::parse(selector) {
[INFO] [stdout]      |                       ---    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                       |      |
[INFO] [stdout]      |                       |      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                       |      up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                       `sel` calls a custom destructor
[INFO] [stdout]      |                       `sel` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  160 |         }
[INFO] [stdout]      |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/cssparser-0.31.2/src/cow_rc_str.rs:102:1
[INFO] [stdout]      |
[INFO] [stdout]  102 | impl<'a> Drop for CowRcStr<'a> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
[INFO] [stdout]      |
[INFO] [stdout] 2147 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sel` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1
[INFO] [stdout]      |
[INFO] [stdout] 2147 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:68:32
[INFO] [stdout]     |
[INFO] [stdout]  57 |         let handle = tokio::spawn(async move {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `handle` calls a custom destructor
[INFO] [stdout]     |             `handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  68 |         if let Ok(mut guard) = self.heartbeat_task.lock() {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  74 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/discord.rs:232:82
[INFO] [stdout]     |
[INFO] [stdout] 230 |                     let (sink, mut stream) = ws.split();
[INFO] [stdout]     |                                ----------
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `stream` calls a custom destructor
[INFO] [stdout]     |                                `stream` will be dropped later as of Edition 2024
[INFO] [stdout] 231 |                     let sink = Arc::new(Mutex::new(sink));
[INFO] [stdout]     |                         ----
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `sink` calls a custom destructor
[INFO] [stdout]     |                         `sink` will be dropped later as of Edition 2024
[INFO] [stdout] 232 |                     if let Err(e) = self.gateway_loop(&mut stream, sink.clone()).await {
[INFO] [stdout]     |                                                                                  ^^^^^
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 235 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `stream` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `sink` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/channels/discord.rs:279:40
[INFO] [stdout]      |
[INFO] [stdout]  268 |               let resp = self
[INFO] [stdout]      |  _________________----___-
[INFO] [stdout]      | |                 |
[INFO] [stdout]      | |                 `resp` calls a custom destructor
[INFO] [stdout]      | |                 `resp` will be dropped later as of Edition 2024
[INFO] [stdout]  269 | |                 .http
[INFO] [stdout]  270 | |                 .post(&url)
[INFO] [stdout]  271 | |                 .header("Authorization", format!("Bot {}", self.config.token))
[INFO] [stdout]  272 | |                 .json(&payload)
[INFO] [stdout]  273 | |                 .send()
[INFO] [stdout]  274 | |                 .await;
[INFO] [stdout]      | |                  -----
[INFO] [stdout]      | |                  |   |
[INFO] [stdout]      | |__________________|___`__awaitee` calls a custom destructor
[INFO] [stdout]      |                    |   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  275 |               match resp {
[INFO] [stdout]  276 |                   Ok(r) => {
[INFO] [stdout]      |                      -
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      `r` calls a custom destructor
[INFO] [stdout]      |                      `r` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  279 |                           if let Ok(v) = r.json::<Value>().await {
[INFO] [stdout]      |                                          ^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                                          |                 |
[INFO] [stdout]      |                                          |                 this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                                          |                 up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                          |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                          |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                          this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                                          up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  280 |                               let retry = v.get("retry_after").and_then(|v| v.as_f64()).unwrap_or(1.0);
[INFO] [stdout]  281 |                               tokio::time::sleep(Duration::from_millis((retry * 1000.0) as u64)).await;
[INFO] [stdout]      |                               ------------------------------------------------------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                               `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  284 |                       }
[INFO] [stdout]      |                       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  289 |                               tokio::time::sleep(Duration::from_secs(1)).await;
[INFO] [stdout]      |                               ------------------------------------------------
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                               `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  295 |                   Err(e) => {
[INFO] [stdout]      |                       -
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `e` calls a custom destructor
[INFO] [stdout]      |                       `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  300 |                       tokio::time::sleep(Duration::from_secs(1)).await;
[INFO] [stdout]      |                       ------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                       `#6` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `resp` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `resp` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `r` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `r` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/channels/whatsapp.rs:92:43
[INFO] [stdout]     |
[INFO] [stdout]  92 |                     while let Some(msg) = read.next().await {
[INFO] [stdout]     |                                    ---    ^^^^^^^^^^^^-----
[INFO] [stdout]     |                                    |      |           |
[INFO] [stdout]     |                                    |      |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |      |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `msg` calls a custom destructor
[INFO] [stdout]     |                                    `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  96 |                                     self.handle_bridge_message(text).await;
[INFO] [stdout]     |                                     --------------------------------------
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  99 |                             Err(e) => {
[INFO] [stdout]     |                                 -
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 `e` calls a custom destructor
[INFO] [stdout]     |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 104 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> crates/rustclaw-core/src/channels/whatsapp.rs:92:43
[INFO] [stdout]      |
[INFO] [stdout]   86 |             match connect_async(&bridge_url).await {
[INFO] [stdout]      |                   --------------------------------
[INFO] [stdout]      |                   |                          |
[INFO] [stdout]      |                   |                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   |                          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   `__awaitee` calls a custom destructor
[INFO] [stdout]      |                   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]   87 |                 Ok((ws, _)) => {
[INFO] [stdout]   88 |                     let (write, mut read) = ws.split();
[INFO] [stdout]      |                                 --------    ----------
[INFO] [stdout]      |                                 |           |
[INFO] [stdout]      |                                 |           this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                 |           `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                 `read` calls a custom destructor
[INFO] [stdout]      |                                 `read` will be dropped later as of Edition 2024
[INFO] [stdout]   89 |                     let mut guard = self.ws_sender.lock().await;
[INFO] [stdout]      |                         ---------   ---------------------------
[INFO] [stdout]      |                         |           |                     |
[INFO] [stdout]      |                         |           |                     this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                         |           |                     `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         |           this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                         |           `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                         `guard` calls a custom destructor
[INFO] [stdout]      |                         `guard` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   92 |                     while let Some(msg) = read.next().await {
[INFO] [stdout]      |                                    ---    ^^^^^^^^^^^^-----
[INFO] [stdout]      |                                    |      |           |
[INFO] [stdout]      |                                    |      |           this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                    |      |           `#6` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    |      this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      |                                    |      up until Edition 2021 `#10` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                    `msg` calls a custom destructor
[INFO] [stdout]      |                                    `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   96 |                                     self.handle_bridge_message(text).await;
[INFO] [stdout]      |                                     --------------------------------------
[INFO] [stdout]      |                                     |
[INFO] [stdout]      |                                     this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                                     `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   99 |                             Err(e) => {
[INFO] [stdout]      |                                 -
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 `e` calls a custom destructor
[INFO] [stdout]      |                                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  104 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]  105 |                 }
[INFO] [stdout]  106 |                 Err(e) => {
[INFO] [stdout]      |                     -
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                     `#8` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  110 |             tokio::time::sleep(Duration::from_secs(5)).await;
[INFO] [stdout]      |             ------------------------------------------------
[INFO] [stdout]      |             |
[INFO] [stdout]      |             this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      |             `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#10` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#10` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rustls-0.23.36/src/crypto/tls13.rs:248:1
[INFO] [stdout]      |
[INFO] [stdout]  248 | impl Drop for OkmBlock {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rustls-0.23.36/src/crypto/tls13.rs:248:1
[INFO] [stdout]      |
[INFO] [stdout]  248 | impl Drop for OkmBlock {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/io/poll_evented.rs:290:1
[INFO] [stdout]      |
[INFO] [stdout]  290 | impl<E: Source> Drop for PollEvented<E> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `read` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]      |
[INFO] [stdout]  200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lock/bilock.rs:200:1
[INFO] [stdout]      |
[INFO] [stdout]  200 | impl<T> Drop for Inner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `guard` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]      |
[INFO] [stdout]  680 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs:1313:9
[INFO] [stdout]      |
[INFO] [stdout] 1313 | /         impl $(<
[INFO] [stdout] 1314 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1315 | |             $( $generics
[INFO] [stdout] 1316 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1319 | |             ),*
[INFO] [stdout] 1320 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/cron/service.rs:162:31
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let handle = tokio::spawn(async move {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `handle` calls a custom destructor
[INFO] [stdout]     |             `handle` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 162 |         if let Ok(mut task) = self.timer_task.lock() {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 168 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/sync/poison/mutex.rs:741:0
[INFO] [stdout] note: `handle` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/join.rs:353:1
[INFO] [stdout]     |
[INFO] [stdout] 353 | impl<T> Drop for JoinHandle<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/providers/openai_provider.rs:143:44
[INFO] [stdout]     |
[INFO] [stdout] 143 |               if let (Ok(name), Ok(value)) = (
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout] 144 | |                 reqwest::header::HeaderName::from_bytes(k.as_bytes()),
[INFO] [stdout] 145 | |                 HeaderValue::from_str(v),
[INFO] [stdout] 146 | |             ) {
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 147 |                   headers.insert(name, value);
[INFO] [stdout]     |                   ---------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 148 |               }
[INFO] [stdout] 149 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> crates/rustclaw-core/src/providers/anthropic_provider.rs:47:44
[INFO] [stdout]     |
[INFO] [stdout]  47 |               if let (Ok(name), Ok(value)) = (
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout]  48 | |                 reqwest::header::HeaderName::from_bytes(k.as_bytes()),
[INFO] [stdout]  49 | |                 HeaderValue::from_str(v),
[INFO] [stdout]  50 | |             ) {
[INFO] [stdout]     | |             ^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  51 |                   headers.insert(name, value);
[INFO] [stdout]     |                   ---------------------------
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]  52 |               }
[INFO] [stdout]  53 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating crates/rustclaw-core/tests/openai_provider.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/rustclaw-cli/src/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/rustclaw-core/tests/tools.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating crates/rustclaw-core/tests/config_loader.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed crates/rustclaw-core/tests/config_loader.rs (2 fixes)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 50s
[INFO] [stderr] crater-edition-check: rustclaw-core v0.1.0 (/opt/rustwide/workdir/crates/rustclaw-core) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: rustclaw-cli v0.1.0 (/opt/rustwide/workdir/crates/rustclaw-cli) updating edition from 2021 to 2024
[INFO] [stderr]     Checking rustclaw-core v0.1.0 (/opt/rustwide/workdir/crates/rustclaw-core)
[INFO] [stderr]     Checking rustclaw-cli v0.1.0 (/opt/rustwide/workdir/crates/rustclaw-cli)
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]   --> crates/rustclaw-core/tests/config_loader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     unsafe { std::env::set_var("HOME", &home) };
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-F unsafe-code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: usage of an `unsafe` block
[INFO] [stdout]   --> crates/rustclaw-core/tests/config_loader.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     unsafe { std::env::set_var("RUSTCLAW_AGENTS__DEFAULTS__MODEL", "env") };
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustclaw-core` (test "config_loader") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02", kill_on_drop: false }`
[INFO] [stdout] 00550c00f10a2cd610dd42921f8a632d70f2540232e3506db512345a56fdde02
